package com.learning.dubbo.practices.shutdown;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * ClassName: DubboPracticesShutdownApplication
 * Description: 最佳实践：优雅停机
 * <p>
 * 1. Dubbo 是通过 JDK 的 ShutdownHook 来完成优雅停机的，所以如果用户使用 kill -9 PID 等强制关闭指令，是不会执行优雅停机的，只有通过 kill PID 时，才会执行。
 * <p>
 * 2. 设置优雅停机超时时间，缺省超时时间是 10 秒，如果超时则强制关闭。
 * dubbo.service.shutdown.wait=15000
 * <p>
 * 3. 如果 ShutdownHook 不能生效，可以自行调用，使用tomcat等容器部署的場景，建议通过扩展ContextListener等自行调用以下代码实现优雅停机：
 * ProtocolConfig.destroyAll();
 *
 * @author Sam Sho
 * @version V1.0.0
 */
@SpringBootApplication
public class DubboPracticesShutdownApplication {

    public static void main(String[] args) {
        SpringApplication.run(DubboPracticesShutdownApplication.class, args);
    }

}
